﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Studio7i.CapaDominio;

namespace Studio7i.CapaNegocio
{
    interface IAdministradorService
    {

        #region Operaciones de negocio
        Administrador InscribirAdmin(string nombre, string mail, string fnacimiento, string clave);
        Instrumento RegistrarInstrumento(String tipoInst, String marcaInst, String modInst, int anhoInst, String carInst, decimal costoInst);
        Servicio RegistrarServicio(String nomServ, decimal costoServ, string carServ );
        ArmadoDeSala RegistrarArmadoSala(int CoArmado, int SsArmado, int CoSala, int CoInstrumento, int CoServicios);
        Sala InscribirSala(string nombre, int localCodigo, int capacidad, string caracteristicas);
        #endregion

        /************************************************************************************************/
        #region Métodos para el soporte de la entidad Instrumento
        Instrumento ObtenerInstrumento(int codInst);
        //ICollection<Instrumento> ListarInstrumentos();
        #endregion

        /************************************************************************************************/
        #region Metodos de soporte para entidad Sala
        Sala ObtenerSala(int CoSala);
        ICollection<Sala> ListarSalas(string nombre, int? localCodigo,int? capacidad, string caracteristicas);
        #endregion      
        
        /************************************************************************************************/
        #region Métodos para el soporte de la entidad Servicio
        Servicio ObtenerServicio(int codServ);
        //ICollection<Servicio> ListarServicios(string nomServ);
        //ICollection<Servicio> ListarCaracteristicasServicios(string carServ);
        
        #endregion

        /************************************************************************************************/
        #region Metodos de soporte para entidad Armado de sala
        ArmadoDeSala ObtenerArmadoSala(int Codigo);
        ArmadoDeSala ModificarArmadoSala(int CoArmado, int SsArmado, int Sala, int Instrumento, int Servicio);  
        //ICollection<ArmadoDeSala> ListarArmadoSala(int CoArmado, int SsArmado, int CoSala, int CoInstrumento, int CoServicios);
        ICollection<ArmadoDeSala> ListarArmadoSala();
        #endregion

        /************************************************************************************************/
        #region Métodos de soporte para entidad Local
        Local CrearLocal(Local localACrear);
        Local ObtenerLocal(int codigo);
        Local ModificarLocal(Local localAModificar);
        void EliminarLocal(Local localAEliminar);
        ICollection<Local> ListarLocales();
        ICollection<Local> ListarLocalesXNombre(string nombre);
        #endregion

        /************************************************************************************************/

        IEnumerable<Servicio> listarservicios();

        IEnumerable<Instrumento> listarinstrumentos();

        IEnumerable<Sala> ListarSalas();
    }
}

